The recent advances in software engineering and high-performance commodity servers facilitate virtualization of network function (NFs). NFs traditionally delivered on proprietary and application-specific equipment now can be realized in software running on generic server hardware (e.g., commercial off-the-shelf (COTS) servers). The technology, coined as network function virtualization (NFV), is gaining increasing popularity with network operators.
NFV may be implemented at various parts of a network, such as serving gateway (S-GW), packet data network gateway (P-GW), serving GPRS (general packet radio service) support node (SGSN), gateway GPRS support node (GGSN), broadband remote access server (BRAS), and provider edge (PE) routers. NFV can be also implemented to support various services or appliances such as deep packet inspection (DPI), firewall (FW), virus scanning (VS), Intrusion Detection and Prevention (IDP), and network address translation (NAT). Because NFV can be flexibly instantiated and torn down in an operator's cloud/data center (DC) when and where needed, and it provides high resource utilization and short service development cycle, network operators can achieve great capital expenditure (Capex) and operational expenditure (Opex) savings.
When a traffic flow arrives at an operator's DC hosting NFV, it will be steered through a number of virtual NFs in an order based on the operator's provisioning policy and service level agreement (SLA). This process is generally referred to as NF chaining, which requires dynamic configuration of the DC network. Due to the growing traffic volume of traffic flows, optical switching technologies have been introduced to enable efficient intra-DC steering for flows aggregation. Traffic flows also need to be processed in electric form utilizing packet switching technologies. Thus, a traffic flow often switches between optical and packet switching several times as it routes through one or more DCs. Yet, optical/electrical/optical (O/E/O) conversions are expensive, and it is desirable to minimize O/E/O conversions in implementing NFV. In addition, even for implementation of NFV without the need of O/E/O, some network function placement is more efficient than the others when measured by certain criteria, and it is desirable to optimize network function placement in providing NF chaining.